Navigation System

ABSTRACT

Touchscreen-enabled devices are provided to display images of either real or virtual environments, the devices having user interfaces including a graphical overlay laid over the images for navigating the environments. The device can interpret gestures made by the user on the touchscreen as commands, and the graphical overlay guides the user as to where to make the gestures to achieve intended maneuvers such as translations of the point of view and rotations of the point of view within the displayed environment. The graphical overlay can comprise only a single symbol, and gestures that originate within the area of the display marked by the symbol are differentiated from those gestures originating from outside of the symbol, where the differentiated gestures control translation and rotation, respectively. This allows for one-finger navigation of the environment.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 62/470,405 filed on Mar. 13, 2017 and entitled“Navigation System;” this application is also a Continuation-in-Part ofU.S. patent application Ser. No. 15/388,935 filed on Dec. 22, 2016 andentitled “Head-Mounted Sensor System” and further a Continuation-in-Partof U.S. patent application Ser. No. 15/389,059 also filed on Dec. 22,2016 and entitled “Head-Mounted Mapping Methods.” The disclosures of allthree noted applications are incorporated herein by reference.

BACKGROUND Field of the Invention

The present invention is in the field of hand-held computing devices andmore particularly to their use for displaying and navigating withinrepresentations of real and virtual environments.

Related Art

2D and 3D representations of virtual environments are well known invideo games, for example, where one or more joysticks are used tonavigate, for example, one joystick can be used to advance, retreat, andturn left and right. Similar controls have been adapted to thetouchscreens of mobile devices.

SUMMARY

The present invention is directed to a computing device comprising atouchscreen display and logic including a micro-processor. Exemplarycomputing devices include hand-held devices as well as stationarydevices. In various embodiments the computing device further comprisesan I/O configured to communicate with external devices via acommunication channel and/or an image storage configured to store arepresentation of a navigable environment. Devices of the presentinvention optionally can also comprise an image source configured togenerate information sufficient to create the representation of thenavigable environment.

The logic is configured to display an image of a navigable environmenton the touchscreen display, the image characterized by a viewpointhaving a position in the navigable environment and an angle in thenavigable environment. The navigable environment comprises a virtualreality environment, a game environment, or a real environment invarious embodiments. The logic is further configured to receive touchinformation from the touchscreen display and filter the touchinformation to identify contact gestures, each contact gesture having anorigination point on the display. The logic is configured further to,for contact gestures having an origination point within a first part ofthe touchscreen display, vary the image on the touchscreen display tochange the position of the viewpoint of the image. The logic is alsoconfigured to, for contact gestures having an origination point within asecond part of the touchscreen display that does not overlap with thefirst part of the touchscreen display, vary the image on the touchscreendisplay to change an angle of the viewpoint of the image.

In various embodiments, the logic is further configured to overlay afirst symbol over the image of the navigable environment, where thefirst symbol is aligned with the first part of the touchscreen display.In some of these embodiments, the logic is further configured to overlaya second symbol over the image of the navigable environment, the secondsymbol being aligned with the second part of the touchscreen display.The logic can be further configured, for contact gestures having theorigination point within the first part of the touchscreen display andincluding a swipe, to move the first symbol from a location where it isaligned with the first part of the touchscreen display and along a pathtraced by the swipe.

In some embodiments in which the device is hand-held, the deviceincludes an orientation sensor and the logic is further configured toreceive orientation information from the orientation sensor, switch thedisplay of the image of the navigable environment between landscape modeand portrait mode based on the orientation information, and overlay afirst symbol over the image of the navigable environment, the firstsymbol being aligned with the first part of the touchscreen display.Further, the logic is still further configured to, when the display ofthe image of the navigable environment is switched to the landscapemode, overlay a second symbol over the image of the navigableenvironment, the second symbol being aligned with a third part of thetouchscreen display within the second part of the touchscreen display.In these embodiments, the logic is further configured, while in thelandscape mode, to filter the touch information to identify contactgestures that originate within the third part of the touchscreendisplay, and to vary the image on the touchscreen display to change theangle of the viewpoint of the image in response thereto.

In various embodiments, the second part of the touchscreen displaycomprises the entire area of the touchscreen display outside of thefirst part of the touchscreen display. Also, in some embodiments, thelogic is further configured, for contact gestures including a swipe andhaving the origination point within the second part of the touchscreendisplay, to vary the angle of the viewpoint proportionally to a lengthof the swipe. The logic may be further configured, for contact gestureshaving the origination point within the first part of the touchscreendisplay, to vary the position of the viewpoint proportionally to alength of a touch contact time on the touchscreen display. The logic canfurther be configured, for contact gestures having the origination pointwithin the first part of the touchscreen display and having a curvedswipe, to vary the position of the viewpoint along a curve.

In various embodiments, the logic is further configured to overlay amini-map of the navigable environment over the image of the navigableenvironment. In some of these embodiments the logic is furtherconfigured to filter the touch information to identify contact gesturesthat comprise a tap, and further configured to provide the mini-map inresponse to contact gestures that comprise the tap. Also, in someembodiments in which the logic is further configured to overlay themini-map, the logic is further configured to filter the touchinformation to identify contact gestures that comprise a tap, andfurther configured to save the image in response to contact gesturesthat comprise the tap.

In further embodiments in which the computing system comprises ahand-held device, the hand-held device includes an orientation sensorand the logic is further configured to receive orientation informationfrom the orientation sensor and switch the display of the image of thenavigable environment between landscape mode and portrait mode based onthe orientation information. In these embodiments the first part of thetouchscreen display can be positioned within an area of the touchscreendisplay and the logic can be further configured to, when in the portraitmode, position the first part of the touchscreen display such that it isspaced apart from a first edge of the touchscreen display by a firstdistance, and spaced apart from a second edge of the touchscreendisplay, which is longer than the first edge, by a second distance, andwhen in the landscape mode, position the first part of the touchscreendisplay such that it is spaced apart from the first edge of thetouchscreen display by the second distance, and spaced apart from thesecond edge of the touchscreen display by the first distance.

The present invention also provides a telepresence system comprising amobile telepresence robot and a controller device. The telepresencerobot is steerable in two dimensions in a real environment in responseto received commands. The robot includes a camera, a first I/Oconfigured to communicate via a communication channel, and logicconfigured to stream video from the camera through the I/O and over thecommunication channel. The controller device includes a second I/Oconfigured to communicate with the telepresence robot via thecommunication channel, a touchscreen display, and logic including amicro-processor. The logic is configured to display the streaming videoon the touchscreen display, where the video is characterized by aviewpoint having a position in the real environment. The logic isfurther configured to receive touch information from the touchscreendisplay, filter the touch information to identify contact gestures eachhaving an origination point on the display, and for contact gestureshaving an origination point within a first part of the touchscreendisplay, send a command to the telepresence robot to move within thereal environment to change the position of the viewpoint of the video.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a communication network including at least onecomputing device, according to various embodiments of the invention.

FIGS. 2A, 2B and 2C illustrate landscape and portrait modes of a userinterface, according to various embodiments of the invention.

FIG. 3. Illustrates a screen capture of the user interface of FIG. 2A,according to various embodiments of the invention.

FIG. 4 illustrates exemplary navigation symbol configurations inportrait and landscape modes, according to various embodiments of theinvention.

DETAILED DESCRIPTION

The present invention is directed to devices with touchscreen userinterfaces that are able to display images on the touchscreen that canbe 2D or 3D representations of either real or virtual environments, andalso directed to a graphical overlay that is displayed as if laid overthe images on the touchscreen. The device can interpret contact gesturesmade by the user on the touchscreen as commands to navigate through theenvironment. The graphical overlay guides the user as to where to placecontact gestures on the touchscreen in order to achieve intendedmaneuvers. Maneuvers can include, for example, translations of the pointof view, rotations of the point of view, and combinations thereof,within the displayed environment. The device can be a hand-held device,in some embodiments, but can also be a device that includes a fixeddisplay, such as one that includes a display mounted on a wall.

More specifically, the graphical overlay can comprise only a singlesymbol, such as a circle, while in other embodiments the overlaycomprises two symbols. In single symbol embodiments, contact gesturesthat originate within the area of the display marked by the symbol aredifferentiated from those contact gestures originating from outside ofthe symbol. In two symbol embodiments, contact gestures that originatewithin one symbol are differentiated from those contact gesturesoriginating within the other symbol. In either case, the differentiatedcontact gestures control translation and rotation, respectively. Withdevices of the present invention, a user is provided with a userinterface to navigate a displayed environment using only a singlefinger. The resulting user experience feels like a proper walk throughas if it were in a computer game.

FIG. 1 illustrates a Communication System 100 including at least oneComputing Device 110A, according to various embodiments of theinvention. Communication System 100 optionally includes additionalComputing Devices 110B, 110C, etc. Computing Devices 110 are optionallyconfigured to communicate via a Network 115. The Network 115 can includethe Internet, a cellular network, a wireless network, a local areanetwork, and/or the like, and combinations thereof.

Computing Device 110A includes a touchscreen Display 125 able to detecta contact of a digit (e.g., thumb or finger) of a user on the surface ofthe Display 125, and exemplary Computing Devices 110A includesmartphones and tablets, as well as other types of computing systemswith touchscreens like laptop computers and systems having wall-mountedtouchscreens displays. Contact gestures, as used herein, areinteractions of the digit with respect to the Display 125 that includeeither touch or close enough proximity to the Display 125 to berecognized thereby. Exemplary contact gestures include a tap (brieftouch), a double tap, a touch at a first point and swiping (maintainingcontact) to a second point, a touch and hold at a specific point, and/orthe like. A path traced by the user's digit across the surface of theDisplay 125 can be part of a contact gesture. Other contact gestures caninclude an arch, circle, etc. Dragging, as used herein, is swiping wherean object being displayed on the Display 125 moves with the digit duringthe swipe. It should be understood that swiping, as used herein, doesnot require any kind of continuous motion is one direction or any kindof speed of the stroke, rather it refers to any sustained contact oversome path, and so excludes a touch and release at a single location.

Computing Device 110A optionally further includes an I/O (input/output)130 configured to communicate with external devices via a communicationchannel, e.g., Network 115. I/O 130 can include a communication port, awireless communication circuit, etc.

Computing Device 110A optionally further includes an Image Storage 145,a non-transitory storage device such as RAM or Flash memory, for storinga representation of a navigable environment, such as through acollection of stored images, like photos of a real environment. Real andvirtual environments can also be represented through stored informationsufficient to construct the navigable environment, such as a 3Dwireframe and a set of textures assigned to the various portions of thewireframe. As such, the navigable environment can comprise, for example,a virtual environment, a game environment, and/or a real environment.Image Storage 145 optionally includes data structures specificallyconfigured to store images and/or a geometry of the environment.

As one example, images of a real environment can be used by a remoteuser holding the Device 110A to maneuver a distant telepresence robotthrough a real environment. In these embodiments, Image Storage 145 isnot necessary where the images comprise streaming video received fromthe telepresence robot, though Image Storage 145 can be provided tobuffer streaming video and/or record the streaming video for laterplayback. The representation of the navigable environment may also begenerated on Computing Device 110A and/or received via Network 115 froman external device or source.

Computing Device 110A further includes User Interface (UI) Logic 135 andNavigation Logic 140. UI Logic 135 continuously receives touchscreeninput in the form of touch information from the Display 125 whileNavigation Logic 140 provides the navigable environment to the Display125 together with one or more navigation symbols. These navigationsymbols are overlaid over the displayed image of the navigableenvironment, and are used to indicate different functions (e.g.,properties or functionalities) of different parts of the Display 125.Navigation symbols can include buttons, menu items, circles, icons, etc.as described further herein. Navigation symbols can be opaque tosemi-transparent with respect to the image below. Navigation Logic 140is optionally configured to present a different number of navigationsymbols depending on an orientation of the Display 125 (e.g., portraitor landscape orientation/mode). Touch information can includeidentification of the pixels being touched, for example.

UI Logic 135 is configured to filter the received touch information todetermine occurrences of contact gestures, and their locations, relativeto the positions of the Symbols 210, 215 or any other symbols. When acontact gesture is identified by a filter, the information about thegesture is passed to the Navigation Logic 140. When an orientation ofthe Display 125 is switched by Navigation Logic 140, the NavigationLogic 140 updates the UI Logic 135 so that the filters can be updated tothe new configuration. Each symbol 210, 215 is aligned with a part ofthe touchscreen Display 125, and the two parts do not overlap inembodiments where both Symbols 210, 215 are used. As used herein,“aligned with” means that the Symbols 210, 215 each overlay a number ofpixels within the part of the Display 125 such that the pixels arecoextensive or nearly coextensive with the Symbol 210, 215. If notcompletely coextensive, the part of the Display 125 that is aligned witha Symbol 210, 215 may be larger or smaller than the Symbol 210, 215itself on the Display 125.

An exemplary Computing Device 110A is illustrated in FIGS. 2A-2C whichshow the Computing Device 110A in both the landscape (FIG. 2A) andportrait (FIGS. 2B and 2C) orientations. In the illustrated embodimentthe Display 125 has a rectangular touch-sensitive display area in whichthe navigable environment is shown. For clarity, no such image is shownin FIGS. 2A-2C, only the Navigation Symbols 210, 215 which are overlaidabove the image of the environment. FIG. 3 shows a screen shot of anenvironment overlaid with Symbols 210, 215 and a “mini-map” of thebroader navigable environment.

In various embodiments, the Computing Device 110A includes anorientation sensor and the Navigation Logic 140 receives orientationinformation from the orientation sensor in order to automatically switchthe Display 125 between portrait and landscape modes based on how theComputing Device 110A is held. In these embodiments, Symbols 210, 215can be displayed by the Navigation Logic 140 to the left and right ofcenter in the landscape orientation, while only one Symbol 215 isprovided below center in the portrait orientation, as illustrated.Stationary displays, such as wall-mounted touchscreens, can employeither a single Symbol 215, or both, and can be switched therebetween insome embodiments.

Navigation Logic 140 is optionally similarly further configured toprovide a partial or complete “mini-map” of the navigable environment onDisplay 125, that is, a representation of the navigable environmentoverlaid over a portion of the image as in FIG. 3. In some embodiments,this mini-map is optionally accessed by a contact gesture, such as adouble tap on a specific part of Display 125, e.g., double tapping onthe part of Display 125 represented by Symbol 215.

Navigation Logic 140 is optionally further configured to provideinformation regarding an object in the displayed image of theenvironment in response to a contact gesture, such as a touch andrelease. For instance, Navigation Logic 140 can include logic thatmaintains a register of selectable objects that are shown in the imagepresently displayed on the Display 125, some information about eachobject, and the coordinates of the pixels within the Display 125corresponding to each such object, so that when the contact gesture isreceived from pixels corresponding to an object, the Navigation Logic140 can add to the overlay the information for that object in an area ofthe Display 125 proximate to the selected object.

In other embodiments the Navigation Logic 140 is configured to employ animage analysis to identify objects in the environment, such as a realenvironment, like people and things within the image presently displayedon the Display 125. In some of these embodiments the Navigation Logic140 can respond to a contact gesture by initiating the image analysis inan area around the pixels that were touched and if something ispositively identified in the analyzed portion of the image, then theNavigation Logic 140 can display information stored for that object orperson, or can search for information, and provide a brief summary asinformation in the overlay proximate to whatever was identified.

Navigation Logic 140 is optionally further configured to save the imagepresently displayed on the Display 125 in response to a contact gesture,the image being a screen shot but without the overlay provided by thepresent invention. Navigation Logic 140 is optionally further configuredto reorient the displayed portion of the navigable environment inresponse to a contact gesture, for example, a contact gesture canreorient the displayed portion of the navigable environment to show theopposite (back) view.

Navigation Logic 140 is further configured to control both the angle andthe position of a viewpoint, that is, change the location within theenvironment from which the environment is presented to the Display 125as well as change the direction of the view from that location.“Position of a viewpoint” is the particular location, or point, in theenvironment from which the view originates. “Angle of a viewpoint” isthe direction, in a coordinate system of the environment, in which theenvironment is observed from the position of the viewpoint. Changing theangle and position of the viewpoint has the effect of panning andzooming, analogous to a person at the position of the viewpoint turningtheir head or moving within the navigable environment.

As noted above, Navigation Logic 140 is further configured to receivefrom UI Logic 135 contact gestures and to recognize some as commands tochange the position of the viewpoint, and to recognize other contactgestures as commands to change the viewpoint. Both types of contactgestures, in some embodiments, share in common that the gestureoriginates on a first part of the Display 125 and extends to anotherpart of the Display 125 before ending. In some instances, a filter mayrecognize a contact gesture as initiated and pass the information to theNavigation Logic 140 before the contact gesture is completed.Accordingly, the Navigation Logic 140 can respond to a contact gestureand change the display of the environment while the contact gesture isstill in progress.

The first and/or second parts of the display are optionally indicated bySymbols 210, 215. In some embodiments, a touch that originates at Symbol210 is used to control the angle of the viewpoint while a touch thatoriginates at Symbol 215 is used to control the position of theviewpoint itself. For instance, touching at Symbol 210 and swiping upresults in an upward change in the angle of the viewpoint, touching atSymbol 210 and swiping right results in a rightward change in the angleof the viewpoint, etc. Touching at Symbol 215 and swiping upward resultsin movement of the position of the viewpoint forward in the navigableenvironment, touching at Symbol 215 and swiping right results inmovement of the position of the viewpoint to the right, etc. Theembodiments represented by FIG. 2A can be particularly useful whenComputing Device 110A is a hand-held device and held with two hands sothat each thumb is used to touch the Symbols 210 and 215 respectively.In some embodiments, touching at Symbol 210 serves to select the Symbol210 such that the Symbol 210 is dragged along with any swipe thatoriginates therein. At the end of the contact gesture, the Symbol 210 isreturned to its home location on the Display 125.

Display 125 is shown in FIG. 2B in the portrait mode. In someembodiments, only one of Symbols 210, 215 is provided by NavigationLogic 140 when in the portrait mode. The operations of UI Logic 135 andNavigation Logic 140 are, thus, optionally dependent on the orientationof Computing Device 110A. The functionality of different parts ofDisplay 125 may change depending on the orientation of Display 125. Inthe example shown, Symbol 215 represents the part of Display 125 fromwhich the position of the viewpoint is manipulated. A contact gesturethat originates in this part of Display 125 and swipes outward therefromis interpreted by UI Logic 135 as a command to change the position ofthe viewpoint within the environment. Optionally, a touch thatoriginates in any other part of Display 125 and swiped is interpreted byUI Logic 135 as a command to change the angle of the viewpoint. Thus, aperson can use a single hand to hold Computing Device 110A and use thethumb of that hand to change viewpoint position by touching at Symbol215, and use their thumb to swipe elsewhere on Display 125 to change theangle of the viewpoint.

FIG. 2C illustrates examples of swiping motions that may occur onDisplay 125 in the landscape mode. Swipes 220 that originate fromoutside of the Symbol 215 are used to change the angle of the viewpoint,and in some embodiments this includes the entire touch-sensitive surfaceof the Display 125 that is outside of the Symbol 215, or can be in justa portion of the Display 125 outside of the Symbol 215. The length orstrength of a Swipe 220 can optionally be used as a means of control,for instance, the amount of change of the angle of the viewpoint can beproportional to the length of the swipe 220.

In FIG. 2C, Swipes 225 that originate at the part of the Display 125indicated by Symbol 215 are used to change the position of theviewpoint. In various embodiments, swiping can be along a straight or acurved path. The path of a swipe optionally is interpreted by UI Logic135 as a contact gesture having a specific meaning. The degree ofcurvature of a swiping gesture is optionally used to control a curvatureof a path along which viewpoint position is changed for the displayedenvironment. For example, a gesture that originates at Symbol 215 andcurves to the area indicated by Boxes 230 in FIG. 2C results in aposition of the viewpoint change forward with a gradual turn (right orleft). In contrast, a gesture that originates at Symbol 215 and curvesto the area indicated by either Box 235 results in a position changeforward with a relatively sharper turn. A gesture with an even greatercurvature may result in a U-turn in viewpoint position. This simulates aperson sharply turning around, analogous to a 180-degree rotation of theangle of the viewpoint. Boxes 230 and 235 are not necessarily visible onDisplay 125 but merely represent, for the sake of illustration, regionsof the Display 125. As such, boxes 230 and 235 may represent eitherdiscrete regions or a continuum in which a large number of alternativegestures may terminate.

In some embodiments, a contact gesture originating from the area ofDisplay 125 indicted by Symbol 215 can be held on the Display 125 at theend of the gesture. In other words, if the user leaves their digit onDisplay 125 after swiping a distance from Symbol 215, the resultingchange (rate and direction) in the position of the viewpoint willcontinue until the digit is lifted from Display 125. Where motioncontinues until the digit is lifted, the amount of viewpoint positionchange is dependent on the length of time the digit is in contact withDisplay 125.

Note that the part of the Display 125 used to control the angle of theviewpoint includes a greater amount of the Display 125 in portrait moderelative to landscape mode. Specifically, a ratio of an area of the partof the display for viewpoint change to an area of the first part of thedisplay for position change is greater in portrait mode relative tolandscape mode.

Computing Device 110A optionally further includes an Image Source 150.Image Source 150 can include, for example, rendering logic configured togenerate the information sufficient to construct the navigableenvironment, like images or a 3D wireframe and a set of textures, thatare stored in the Image Storage 145. Computing Device 110A furtherincludes a Microprocessor 180 configured to execute at least theNavigation Logic 140, but also one or more of the UI Logic 135, ImageSource 150, I/O 130 and any other logic herein that requires amicroprocessor to implement coded instructions.

The “logic” discussed herein includes hardware, firmware, and/orsoftware stored on a non-transient computer readable medium. UI Logic135 and Navigation Logic 140 may be used to navigate a virtual realityenvironment, to navigate a game environment, to navigate a telepresencerobotic device in the real world, and/or the like. It should be notedthat the divisions made here between UI Logic 135 and Navigation Logic140 are exemplary, and the functions they provide can be integrated intoa singular logic or distributed across three or more logics.

Communication System 100 optionally further includes a Remote ImageSource 155 in communication with Computing Device 110A across Network115. In some embodiments, the information sufficient to construct thenavigable environment that is stored in Image Storage 145 is generatedat least in part by Remote Image Source 155. Remote Image Source 155 caninclude embodiments of I/O 130, Image Source 150, Microprocessor 180,and/or the like.

Communication System 100 optionally further includes a Sensor System 165configured to generate data characterizing a real-world navigableenvironment from which the information sufficient to construct thenavigable environment can be further generated. Sensor System 165 canrange from one or more optical cameras to more complex systems able togauge distance as well as to collect images such as those described inU.S. patent application Ser. Nos. 15/389,059 and 15/388,935. In someembodiments, Computing Device 110A includes Sensor System 165.

FIG. 4 illustrates exemplary navigation symbol configurations forportrait and landscape modes, respectively. In the portrait mode, inthese embodiments, the Symbol 215 is positioned along the verticalcenterline of the Display 125 and spaced from the bottom edge of theDisplay 125 by a gap, a, as shown. The Symbol 215 is also spaced fromthe right edge of the Display 125 by another gap. In the landscape mode,Symbol 215 is likewise spaced from the bottom and right edges of theDisplay 125 by the same gaps. Other navigation symbols that may bepresent as part of the overlay in the portrait mode are similarlyrepositioned to maintain their respective gaps relative to the nearesttwo sides of the Display 125, as further illustrated.

The embodiments discussed herein are illustrative of the presentinvention. As these embodiments of the present invention are describedwith reference to illustrations, various modifications or adaptations ofthe methods and or specific structures described may become apparent tothose skilled in the art. All such modifications, adaptations, orvariations that rely upon the teachings of the present invention, andthrough which these teachings have advanced the art, are considered tobe within the spirit and scope of the present invention. Hence, thesedescriptions and drawings should not be considered in a limiting sense,as it is understood that the present invention is in no way limited toonly the embodiments illustrated.

Computing systems referred to herein can comprise an integrated circuit,a microprocessor, a personal computer, a server, a distributed computingsystem, a communication device, a network device, or the like, andvarious combinations of the same. A computing system may also comprisevolatile and/or non-volatile memory such as random access memory (RAM),dynamic random access memory (DRAM), static random access memory (SRAM),magnetic media, optical media, nano-media, a hard drive, a compact disk,a digital versatile disc (DVD), and/or other devices configured forstoring analog or digital information, such as in a database. Thevarious examples of logic noted above can comprise hardware, firmware,or software stored on a computer-readable medium, or combinationsthereof. A computer-readable medium, as used herein, expressly excludespaper. Computer-implemented steps of the methods noted herein cancomprise a set of instructions stored on a computer-readable medium thatwhen executed cause the computing system to perform the steps.

What is claimed is:
 1. A computing device comprising: a touchscreendisplay; and logic including a micro-processor and configured to displayan image of a navigable environment on the touchscreen display, theimage characterized by a viewpoint having a position in the navigableenvironment and an angle in the navigable environment, receive touchinformation from the touchscreen display, filter the touch informationto identify contact gestures each having an origination point on thedisplay, and for contact gestures having an origination point within afirst part of the touchscreen display, vary the image on the touchscreendisplay to change the position of the viewpoint of the image, and forcontact gestures having an origination point within a second part of thetouchscreen display that does not overlap with the first part of thetouchscreen display, vary the image on the touchscreen display to changean angle of the viewpoint of the image.
 2. The computing device of claim1 wherein the computing device is a hand-held device.
 3. The computingdevice of claim 1 wherein the logic is further configured to overlay afirst symbol over the image of the navigable environment, the firstsymbol being aligned with the first part of the touchscreen display. 4.The computing device of claim 3 wherein the logic is further configuredto overlay a second symbol over the image of the navigable environment,the second symbol being aligned with the second part of the touchscreendisplay.
 5. The computing device of claim 2 wherein the hand-held deviceincludes an orientation sensor and the logic is further configured toreceive orientation information from the orientation sensor, switch thedisplay of the image of the navigable environment between landscape modeand portrait mode based on the orientation information, overlay a firstsymbol over the image of the navigable environment, the first symbolbeing aligned with the first part of the touchscreen display, and whenthe display of the image of the navigable environment is switched to thelandscape mode, overlay a second symbol over the image of the navigableenvironment, the second symbol being aligned with a third part of thetouchscreen display within the second part of the touchscreen display,wherein the logic is further configured, while in the landscape mode, tofilter the touch information to identify contact gestures that originatewithin the third part of the touchscreen display, and to vary the imageon the touchscreen display to change the angle of the viewpoint of theimage in response thereto.
 6. The computing device of claim 1 whereinthe second part of the touchscreen display comprises the entire area ofthe touchscreen display outside of the first part of the touchscreendisplay.
 7. The computing device of claim 1 wherein the logic is furtherconfigured, for contact gestures including a swipe and having theorigination point within the second part of the touchscreen display, tovary the angle of the viewpoint proportionally to a length of the swipe.8. The computing device of claim 1 wherein the logic is furtherconfigured, for contact gestures having the origination point within thefirst part of the touchscreen display, to vary the position of theviewpoint proportionally to a length of a touch contact time on thetouchscreen display.
 9. The computing device of claim 1 wherein thelogic is further configured, for contact gestures having the originationpoint within the first part of the touchscreen display and having acurved swipe, to vary the position of the viewpoint along a curve. 10.The computing device of claim 3 wherein the logic is further configured,for contact gestures having the origination point within the first partof the touchscreen display and including a swipe, to move the firstsymbol from a location where it is aligned with the first part of thetouchscreen display and along a path traced by the swipe.
 11. Thecomputing device of claim 1 wherein the navigable environment comprisesa virtual reality environment, a game environment, or a realenvironment.
 12. The computing device of claim 1 wherein the logic isfurther configured to overlay a mini-map of the navigable environmentover the image of the navigable environment.
 13. The computing system ofclaim 12 wherein the logic is further configured to filter the touchinformation to identify contact gestures that comprise a tap, andfurther configured to provide the mini-map in response to contactgestures that comprise the tap.
 14. The computing system of claim 12wherein the logic is further configured to filter the touch informationto identify contact gestures that comprise a tap, and further configuredto save the image in response to contact gestures that comprise the tap.15. The computing system of claim 1 further comprising an I/O configuredto communicate with external devices via a communication channel. 16.The computing system of claim 1 further comprising an image storageconfigured to store a representation of a navigable environment.
 17. Thecomputing system of claim 1 further comprising an image sourceconfigured to generate information sufficient to create a representationof a navigable environment.
 18. The computing system of claim 2 whereinthe hand-held device includes an orientation sensor, the first part ofthe touchscreen display is positioned within an area of the touchscreendisplay, and the logic is further configured to receive orientationinformation from the orientation sensor, switch the display of the imageof the navigable environment between landscape mode and portrait modebased on the orientation information, and when in the portrait mode,position the first part of the touchscreen display such that it isspaced apart from a first edge of the touchscreen display by a firstdistance, and spaced apart from a second edge of the touchscreendisplay, which is longer than the first edge, by a second distance, andwhen in the landscape mode, position the first part of the touchscreendisplay such that it is spaced apart from the first edge of thetouchscreen display by the second distance, and spaced apart from thesecond edge of the touchscreen display by the first distance.
 19. Atelepresence system comprising: a mobile telepresence robot steerable intwo dimensions in a real environment in response to received commands,the robot including a camera, a first I/O configured to communicate viaa communication channel, and logic configured to stream video from thecamera through the I/O and over the communication channel; and acontroller device including a second I/O configured to communicate withthe telepresence robot via the communication channel, a touchscreendisplay, and logic including a micro-processor and configured to displaythe streaming video on the touchscreen display, the video characterizedby a viewpoint having a position in the real environment, receive touchinformation from the touchscreen display, filter the touch informationto identify contact gestures each having an origination point on thedisplay, and for contact gestures having an origination point within afirst part of the touchscreen display, send a command to thetelepresence robot to move within the real environment to change theposition of the viewpoint of the video.